package com.eastfair.gateway.service;

import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.boot.service.SuperService;
import com.eastfair.gateway.dto.BackListDTO;
import com.eastfair.gateway.entity.BackList;
import com.eastfair.gateway.vo.BackListVO;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 业务接口
 * 黑名单
 * </p>
 *
 * @author ligang
 * @date 2022-07-30
 */
public interface BackListService extends SuperCacheService<BackList> {
    /**
     * do转vo
     *
     * @param model
     */
    BackListVO doToVo(BackList model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<BackListVO> doToVos(List<BackList> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<BackList> list(BackListDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<BackList> listOfCache(BackListDTO modelDTO, List<Long> ids);

    /**
     * 添加黑名单
     *
     * @param backListDTO
     * @param startTime   限制时间起
     * @param endTime     限制时间止
     * @return
     */
    BackList executeAddBackList(BackListDTO backListDTO, LocalDateTime startTime, LocalDateTime endTime);


    /**
     * 查询黑名单
     *
     * @param backListDTO
     * @return
     */
    List<BackList> queryBackList(BackListDTO backListDTO);
}
